package org.flint.data.structure.uf;

/**
 * @author flint92
 */
public interface UnionFind {

    /**
     * 是否连通
     *
     * @param p 元素1的索引
     * @param q 元素2的索引
     * @return bool
     */
    boolean isConnected(int p, int q);

    /**
     * 并集操作
     *
     * @param p 元素1的索引
     * @param q 元素2的索引
     */
    void union(int p, int q);

    /**
     * 个数
     *
     * @return 个数
     */
    int getSize();

}
